- 时间相关
- 提供获取系统时间并格式化输出的功能
- 提供系统级精确计时功能,用于程序性能分析
- 计时起点:1970年1月1日0时0分0秒,可以用time.gmtime(0)获得
- UTC时间:Coordinated Universal Time,世界标准时间,与GMT一致
- DST,Daylight Saving Time,夏令时时间,源于系统底层C函数
时间的表示方法
数字表示法
一般从计时起点开始计算,如1548905599.0935512
1
2
3time.time()
# 1548906515.095716 本地当前时间戳
time.time_ns()struct_time时间表示法
便于程序员使用的带有属性标签的时间描述对象,如 time.struct_time(tm_year=2019, tm_mon=1, tm_mday=31, tm_hour=3, tm_min=34, tm_sec=46, tm_wday=3, tm_yday=31, tm_isdst=0)
属性名 | 含义 | 取值范围 |
---|---|---|
tm_year | 年 | 四位整数,如2019 |
tm_mon | 月 | [1,12] |
tm_mday | 日 | [1,31] |
tm_hour | 小时 | [0,23] |
tm_min | 分钟 | [0,59] |
tm_sec | 秒 | [0,61] 60仅用于调时 |
tm_wday | 星期 | [0,6],星期一为0 |
tm_yday | 全年第几天 | [1,366] |
tm_isdst | 是否DST时间 | (0, 1, -1) 0:DST 1:非DST -1:随系统 |
tm_zone | 时区的缩写 | |
tm_gmtoff | 与UTC时间相差的秒数 |
1 | now = time.gmtime() |
字符串时间表示法
便于用户查看的时间,如Thu Jan 31 11:36:28 2019
1
2time.ctime()
#'Thu Jan 31 11:48:04 2019' 本地当前时间
库变量详解(4个)
变量/属性/类 | 含义 |
---|---|
altzone | 不知道 |
daylight | 不知道 |
timezone | 不知道 |
tzname | 不知道 |
库函数详解(20个)
- 时间获取(7个):time()、time_ns()、gmtime()、ctime()、asctime()、localtime()、mktime()
- 时间格式化(2个):strftime()、strptime()
- 程序计时(10个):clock()、monotonic()、monotonic_ns()、perf_counter()、perf_counter_ns()、process_time()、process_time_ns()、thread_time()、thread_time_ns()、sleep()
- 辅助函数(1个):get_clock_info()
时间获取与格式化
时间获取与格式化函数 | 描述 |
---|---|
time() | 返回一个从计时起点开始到现在的秒数(浮点数) |
time_ns() | 返回一个从计时起点开始到现在的纳秒数(整数) |
gmtime([seconds]) | 返回表示当前UTC时间的struct_time对象,如果传入参数seconds,则把seconds转换成该时刻的struct_time |
localtime([seconds]) | 返回表示当前本地时间的struct_time对象,如果传入参数seconds,则把seconds转换成该时刻的struct_time |
ctime([seconds]) | 返回一个表示当前时间的字符串,如果传入参数seconds,则把seconds转换成该时刻的时间字符串 |
asctime([tuple]) | 返回一个表示当前时间的字符串,如果传入参数时间元组,则把seconds转换成该时刻的时间字符串 |
mktime(st) | 将一个struct_time对象转换成一个秒数浮点数 |
strftime() | 按照给定格式化模板字符串,将struct_time转换成字符串 |
strptime() | 按照给定格式化模板字符串,将字符串解析成struct_time对象 |
时间的格式化控制符
格式化控制符 | 说明 | 实例 |
---|---|---|
%Y,%m,%d | 年月日的数字形式 | 2019,01,31 |
%B,%b | 月份的全写和缩写 | January,Jan |
%A,%a | 星期的全写和缩写 | Monday,Mon |
%H,%M,%S | 小时,分钟,秒 | 15,06,12 |
%I,%p | 小时(12小时值),上下午 | 03,PM |
%z | 与UTC的偏移量 | +0800 |
%c | 区域设置适当的日期和时间表示形式。 | Thu Jan 31 15:07:20 2019 |
1 | graph TD |
程序计时
计时函数 | 描述 |
---|---|
clock() | 返回自从进程启动后的CPU时间或真实时间,调用之差是时间隔时间,不同平台精度不同。python3.3中被弃用,python3.8中移除。 |
monotonic(),monotonic_ns() | 返回一个计时时间,两次调用之差是间隔时间,单调不可回退 |
perf_counter(),perf_counter_ns() | 用于基准测试的性能计数器。返回一个精确计时时间,包含全部时间 |
process_time(),process_time_ns() | 返回一个进程计时时间,不包含sleep时间 |
thread_time(),thread_time_ns() | 用户态和内核态的CPU时间之和 |
sleep(seconds) | 将线程挂起seconds秒,seconds可以是浮点数 |
辅助函数
辅助函数 | 描述 |
---|---|
get_clock_info(name) | 返回以下六种计时器的属性值 ‘clock’,’monotonic’,’perf_counter’,’process_time’,’thread_time’,’time’ |
1 | import time |
1 | >>>import time |